x86: reduce magic number usage in XSAVE code
authorWei Gang <gang.wei@intel.com>
Wed, 9 Feb 2011 08:58:11 +0000 (08:58 +0000)
committerWei Gang <gang.wei@intel.com>
Wed, 9 Feb 2011 08:58:11 +0000 (08:58 +0000)
Signed-off-by: Wei Gang <gang.wei@intel.com>
xen/arch/x86/hvm/hvm.c
xen/arch/x86/i387.c
xen/include/asm-x86/i387.h

index 51cde88e24448d0fe3ffa538fade642b1220ada6..ec71dfcef32354ef8299e1334ee0aa64882f7657 100644 (file)
@@ -2223,7 +2223,7 @@ void hvm_cpuid(unsigned int input, unsigned int *eax, unsigned int *ebx,
         if ( count == 0 && v->arch.xcr0 ) 
         {
             /* reset EBX to default value first */
-            *ebx = 576
+            *ebx = XSAVE_AREA_MIN_SIZE
             for ( sub_leaf = 2; sub_leaf < 64; sub_leaf++ )
             {
                 if ( !(v->arch.xcr0 & (1ULL << sub_leaf)) )
index 0b052349e38e2f1627373f98c710a9e918b402e5..5c96da0456776f95293f11675ac705032440e76c 100644 (file)
@@ -221,7 +221,6 @@ static void restore_fpu(struct vcpu *v)
 }
 
 #define XSTATE_CPUID 0xd
-#define XSAVE_AREA_MIN_SIZE (512 + 64) /* FP/SSE + XSAVE.HEADER */
 
 /*
  * Maximum size (in byte) of the XSAVE/XRSTOR save area required by all
index 9be8206b82e6c384f79ac7b862e4bc895d6762c5..2cbbbc40e94f0e1938f24d7784e39d0869a917a0 100644 (file)
@@ -21,13 +21,14 @@ void xsave_init(void);
 int xsave_alloc_save_area(struct vcpu *v);
 void xsave_free_save_area(struct vcpu *v);
 
+#define XSAVE_AREA_MIN_SIZE (512 + 64) /* FP/SSE + XSAVE.HEADER */
 #define XSTATE_FP       (1ULL << 0)
 #define XSTATE_SSE      (1ULL << 1)
 #define XSTATE_YMM      (1ULL << 2)
 #define XSTATE_LWP      (1ULL << 62) /* AMD lightweight profiling */
 #define XSTATE_FP_SSE   (XSTATE_FP | XSTATE_SSE)
 #define XCNTXT_MASK     (XSTATE_FP | XSTATE_SSE | XSTATE_YMM | XSTATE_LWP)
-#define XSTATE_YMM_OFFSET  (512 + 64)
+#define XSTATE_YMM_OFFSET  XSAVE_AREA_MIN_SIZE
 #define XSTATE_YMM_SIZE    256
 #define XSAVEOPT        (1 << 0)